Conditions | 1 |
Paths | 1 |
Total Lines | 189 |
Lines | 0 |
Ratio | 0 % |
Changes | 3 | ||
Bugs | 0 | Features | 0 |
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
1 | /* jshint -W101, -W098 */ |
||
13 | describe('RequestBuilder setters', function() { |
||
14 | it('sets the network and time', function(cb) { |
||
15 | var network = "main"; |
||
16 | var now = new Date().getTime(); |
||
17 | var builder = new RequestBuilder(); |
||
18 | builder.setNetwork(network); |
||
19 | builder.setTime(now); |
||
20 | |||
21 | var test = function(builder) { |
||
22 | assert.equal(builder.network, network); |
||
23 | assert.equal(builder.time, now); |
||
24 | }; |
||
25 | |||
26 | test(builder); |
||
27 | test(encodeAndDecode(builder)); |
||
28 | cb(); |
||
29 | }); |
||
30 | |||
31 | it('sets the memo', function(cb) { |
||
32 | var memo = "thanks from btc.com"; |
||
33 | var now = new Date().getTime(); |
||
34 | var builder = new RequestBuilder(); |
||
35 | builder.setMemo(memo); |
||
36 | builder.setTime(now); |
||
37 | |||
38 | var test = function(builder) { |
||
39 | assert.equal(builder.memo, memo); |
||
40 | }; |
||
41 | |||
42 | test(builder); |
||
43 | test(encodeAndDecode(builder)); |
||
44 | cb(); |
||
45 | }); |
||
46 | |||
47 | it('sets the expire time', function(cb) { |
||
48 | var now = new Date().getTime(); |
||
49 | var expireTime = new Date().getTime(); |
||
50 | var builder = new RequestBuilder(); |
||
51 | builder.setExpires(expireTime); |
||
52 | builder.setTime(now); |
||
53 | |||
54 | var test = function(builder) { |
||
55 | assert.equal(builder.expires, expireTime); |
||
56 | }; |
||
57 | |||
58 | test(builder); |
||
59 | test(encodeAndDecode(builder)); |
||
60 | cb(); |
||
61 | }); |
||
62 | |||
63 | it('sets the payment url', function(cb) { |
||
64 | var paymentUrl = "https://webstore.com/payments?id=correcthorsebatterystaple-ie-random"; |
||
65 | var builder = new RequestBuilder(); |
||
66 | builder.setPaymentUrl(paymentUrl); |
||
67 | builder.setTime(new Date().getTime()); |
||
68 | |||
69 | var test = function(builder) { |
||
70 | assert.equal(builder.paymentUrl, paymentUrl); |
||
71 | }; |
||
72 | |||
73 | test(builder); |
||
74 | test(encodeAndDecode(builder)); |
||
75 | cb(); |
||
76 | }); |
||
77 | |||
78 | it('sets merchant data', function(cb) { |
||
79 | var merchantData = new Buffer("4cf6403a-b5a3-11e7-abc4-cec278b6b50a"); |
||
80 | var builder = new RequestBuilder(); |
||
81 | builder.setMerchantData(merchantData); |
||
82 | builder.setTime(new Date().getTime()); |
||
83 | |||
84 | var test = function(builder) { |
||
85 | var m = Buffer.from(builder.merchantData); |
||
86 | assert.equal(m.toString('hex'), merchantData.toString('hex')); |
||
87 | }; |
||
88 | |||
89 | test(builder); |
||
90 | test(encodeAndDecode(builder)); |
||
91 | cb(); |
||
92 | }); |
||
93 | |||
94 | it('sets an output', function(cb) { |
||
95 | var txOut = { |
||
96 | amount: 1, |
||
97 | script: Buffer.from('42', 'hex') |
||
98 | }; |
||
99 | |||
100 | var builder = new RequestBuilder(); |
||
101 | builder.addOutput(txOut); |
||
102 | builder.setTime(new Date().getTime()); |
||
103 | |||
104 | var test = function(builder) { |
||
105 | assert.equal(1, builder.outputs.length); |
||
106 | |||
107 | var out = builder.outputs[0]; |
||
108 | assert.equal(out.amount, txOut.amount); |
||
109 | |||
110 | var outScript = Buffer.from(out.script); |
||
111 | assert.equal(outScript.toString('hex'), txOut.script.toString('hex')); |
||
112 | }; |
||
113 | |||
114 | test(builder); |
||
115 | test(encodeAndDecode(builder)); |
||
116 | |||
117 | cb(); |
||
118 | }); |
||
119 | |||
120 | it('sets outputs', function(cb) { |
||
121 | var txOut1 = { |
||
122 | amount: 1, |
||
123 | script: Buffer.from('', 'hex') |
||
124 | }; |
||
125 | var txOut2 = { |
||
126 | amount: 1, |
||
127 | script: Buffer.from('', 'hex') |
||
128 | }; |
||
129 | var builder = new RequestBuilder(); |
||
130 | builder.setOutputs([txOut1, txOut2]); |
||
131 | builder.setTime(new Date().getTime()); |
||
132 | |||
133 | var test = function(builder) { |
||
134 | assert.equal(2, builder.outputs.length); |
||
135 | assert.equal(builder.outputs[0].amount, txOut1.amount); |
||
136 | assert.equal(builder.outputs[0].script.toString('hex'), txOut1.script.toString('hex')); |
||
137 | |||
138 | assert.equal(builder.outputs[1].amount, txOut2.amount); |
||
139 | assert.equal(builder.outputs[1].script.toString('hex'), txOut2.script.toString('hex')); |
||
140 | }; |
||
141 | |||
142 | test(builder); |
||
143 | test(encodeAndDecode(builder)); |
||
144 | |||
145 | cb(); |
||
146 | }); |
||
147 | |||
148 | it('builds PaymentDetails', function(cb) { |
||
149 | var time = new Date().getTime(); |
||
150 | |||
151 | // obviously invalid script, shout out p2pool ;) |
||
152 | var txOut = { |
||
153 | amount: 1, |
||
154 | script: Buffer.from('ascii') |
||
155 | }; |
||
156 | var network = "main"; |
||
157 | |||
158 | var builder = new RequestBuilder(); |
||
159 | builder.setTime(time); |
||
160 | builder.setNetwork(network); |
||
161 | builder.addOutput(txOut); |
||
162 | |||
163 | var test = function(builder) { |
||
164 | assert.equal(builder.time, time); |
||
165 | assert.equal(builder.network, network); |
||
166 | assert.equal(builder.outputs[0].amount, txOut.amount); |
||
167 | |||
168 | var script = Buffer.from(builder.outputs[0].script); |
||
169 | assert.equal(script.toString('binary'), txOut.script.toString('binary')); |
||
170 | }; |
||
171 | |||
172 | test(builder); |
||
173 | test(builder.buildDetails()); |
||
174 | test(encodeAndDecode(builder)); |
||
175 | |||
176 | cb(); |
||
177 | }); |
||
178 | |||
179 | it('builds PaymentRequest', function(cb) { |
||
180 | var time = new Date().getTime(); |
||
181 | |||
182 | // obviously invalid script, shout out p2pool ;) |
||
183 | var txOut = { |
||
184 | amount: 1, |
||
185 | script: Buffer.from('ascii') |
||
186 | }; |
||
187 | var network = "main"; |
||
188 | |||
189 | var builder = new RequestBuilder(); |
||
190 | builder.setTime(time); |
||
191 | builder.setNetwork(network); |
||
192 | builder.addOutput(txOut); |
||
193 | |||
194 | var encodedDetails = ProtoBuf.PaymentDetails.encode(builder.buildDetails()).finish(); |
||
195 | var request = builder.buildRequest(); |
||
196 | |||
197 | assert.equal(request.serialized_payment_details.toString('hex'), encodedDetails.toString('hex')); |
||
198 | |||
199 | cb(); |
||
200 | }); |
||
201 | }); |
||
202 |